Jump to content
  • 0

Как определить разрешение экрана для IE без javascript


Newbie
 Share

Question

У меня стандартная ситуация: необходимо определить разрешение экрана.

(под каждое разрешение идёт своя css-таблица.)

Для этого использую вставку Javascript в код страницы (как везде рекомендуют).

<comment>
<script language=JavaScript>
if (screen.width <= '1024') {document.write ('<LINK href="main.css" rel="stylesheet" type="text/css">');
}
else {if (screen.width > '1024') {document.write ('<LINK href="main1280.css" rel="stylesheet" type="text/css">'); } }
</script>
</comment>

Но такая схема "безболезненно" подходит для всех броузеров кроме Internet

Explorera. При открытии такой страницы в Internet Explorere появляется сообщение:

В целях безопасности IE не разрешает этому веб-узлу выполнение сценариев или

элементов управления ActiveX, которые могут получить доступ к компьютеру....

Чтобы это сообщение не показывалось в IE, заключил участок jscript-кода в теги

<comment> </comment>.

То есть в IE существует такая проблема, нельзя определить разрешение без появления вышеуказанного сообщения.

Подскажите, пожалуйста, как избавиться от этого лишнего сообщения в IE или, может быть, как-то по-другому определить разрешение для этого весьма популярного броузера.

p.s. Прошу, пожалуйста, не давть советы использовать резиновый дизайн, т.к. у меня используются изображения, которые занимают всю высоту экрана. И выглядит некрасиво если одну и ту же картинку использовать для любого разрешения.

Edited by Newbie
Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Проблема с IE, к счастью, существует лишь при открытии файла с локального диска. Через HTTP никаких назойливых сообщений не вылезает. Поставьте себе локальный HTTP-сервер (хотя бы набор "Денвер", который и настраивать не надо) и живите спокойно :).

А вот за привязку к screen.width буду больно щипать :). Какого лешего кто-то пытается лишить меня права комфортного просмотра сайта в окне браузера, открытого ровно на половину моего 125-дюймового широкоформатного монитора? :)

Имхо, грамотный подход к решению этой задачи описан здесь (с примерами).

Link to comment
Share on other sites

  • 0

Кстати, весьма раздражает, что некоторые сайты, например, определив ширину монитора как 1280, решают, что и размер окна у меня соответсвует, при том, что я не люблю разворачивать окно браузера, как правило оно занимает не более 2/3 ширины монитора. Исключение, конечно, только для мониторов шириной в 1024, за такими тоже приходится работать.

Link to comment
Share on other sites

  • 0
Имхо, грамотный подход к решению этой задачи описан здесь (с примерами).

Спасибо за предыдущие ответы. :rolleyes:

Не могли бы Вы объяснить, как Вы представляете себе работу файла behaviors_news.js ?

И непонятно вот ещё что:

картинка из вышеуказанного примера адаптивной графики будет переподгружаться как только будет перейдеден порог размера окна броузера (240,...,800, 1024,1280,...) или нет (т.е. картинка имеет фиксированный размер при любом разрешении и просто урезается) ?

Link to comment
Share on other sites

  • 0

файлик behaviors_news.js сам маленький, но в нём ровным счётом ничего непонятно. :rolleyes:

Кому не сложно объясните, пожалуйста, что (и как) в нём происходит.

Вот он:

window.onload = setScreenClass; 
window.onresize = setScreenClass;

// Following transition classes will be declared:
//
// classname screenwidth
// ——————————————
// pda_v 240px
// pda_h 320px
// ultralow 320px - 640px
// screen_lo 640px - 800px
// screen_med 800px - 1024px
// screen_hi 1024px - 1280px
// screen_wide > 1280px

function setScreenClass(){
var fmt = document.documentElement.clientWidth;
var cls = (fmt<=240)?'pda_ver':(fmt>240&&fmt<=320)?'pda_hor':(fmt>320&&fmt<=640)?'screen_ultralow':(fmt>640&&fmt<=800)?'screen_low':(fmt>800&&fmt<=1024)?'screen_med':(fmt>1024&&fmt<=1280)?'screen_high':'screen_wide';
document.getElementById('count').innerHTML=fmt+'px -> '+cls;
document.body.className=cls;
};

Edited by Newbie
Link to comment
Share on other sites

  • 0

выше написаны имена классов и разрешения, а в скрипте:

1) переменная fmt получает значение ширины рабочей области.

2) переменная cls получает значение класса в зависимости от переменной fmt

3) на экран выводится текущее разрешение

4) body получает имя класса забитое в cls

этот алгоритм выполняется при загрузке страницы и при изменении окна браузера.

Edited by Victor Ananiev
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy